Ext.define('Hi.view.report.VRequest',{  
    extend:'Ext.grid.Panel',
    height: AppConfig.gridHeight, 
    stripeRows: true,    
    title: 'Usuarios Solicitud',
    bbar: new Ext.PagingToolbar({  
        pageSize: AppConfig.gridPageSize,        
        store: Ext.data.StoreManager.lookup('requestvreds'),  
        displayInfo: true  
    }),
    columns: [
        {
            header: 'Número solicitud',
            dataIndex: 'NUM_SOLICITUD'
        },
        {
            header: 'Nombre Cargo',
            dataIndex: 'NOMCARGO',
            width:150
        },
        {
            header: 'Nombre Proyecto',
            dataIndex: 'NOMPROYECTO',
            width:150
        },
        {
            header: 'Calificador Prueba Técnica',
            dataIndex: 'CALIFICADOR_PRUEBA_TECNICA',
            width: 170
        },
        {
            header: 'Calificador Entrevista',
            dataIndex: 'CALIFICADOR_ENTREVISTA',
            width: 150
        },
        {
            header: 'Foco Tecnico',
            dataIndex: 'NOMFOCOTECNICO'          
        },
        {
            header: 'Usuario Solicitante',
            dataIndex: 'USUARIO_SOLICITANTE',
            width:150
        },
        {
            header: 'Fecha_Solicitud',
            dataIndex: 'FECHA_SOLICITUD'
        },
        {
            header: 'Estado',
            dataIndex: 'ESTADO'
        }
    ],      
    tbar: [
        {
            text: 'Ver',
            iconCls: 'book-open',
            handler: function(){
                
                var grid = Ext.getCmp('request');
                var rows = grid.getSelectionModel().getSelection();
                if(rows.length === 0)
                    return;
                
                var record = rows[0];
                
                var form = Ext.create('Hi.view.report.VRequestDetail', {
                                id: 'RequestDetailForm'
                            });
                            
                    var title = record.get('NUM_SOLICITUD');
                    form.loadRecord(record);
                
                var win = Ext.create('Ext.window.Window', {
                    id: 'RequestDetailWindow',
                    modal: true,
                    items: [
                        form
                    ],
                    title: 'Solicitud ' + title,
                    buttons: [
                        {
                            text: 'Aceptar',
                            handler: function(){
                                this.up('window').close();
                            }
                        }
                    ]
                }).show();
            }
        },
        {
            text: 'Cancelar caso',
            iconCls: 'btn-cancel',
            handler: function(){
                var grid = Ext.getCmp('request');
                var rows = grid.getSelectionModel().getSelection();
                if(rows.length === 0)
                    return;
                
                var record = rows[0];
                
                if(record.get('ESTADO') == 'CANCELADO'){
                    Ext.MessageBox.show({
                        buttons: Ext.MessageBox.OK,
                        icon: Ext.MessageBox.ERROR,
                        msg: 'Este caso ya esta cancelado',                        
                        title: 'Error!!!'           
                    });
                    return;
                }
                var confirm;
                var justify = '';
                
                Ext.MessageBox.prompt({                                  
                    buttons: Ext.MessageBox.OKCANCEL,
                    msg: 'Motivo por el que se cancela la solcitud',
                    multiline: true,       
                    prompt: true,
                    title: 'Justificación',                                        
                    fn: function(btn, text){
                        if(btn == 'ok'){
                            if(text != ''){
                            
                                Ext.Ajax.request({
                                    url: '/requests/cancelcase',
                                    params: {
                                        NUM_SOLICITUD: record.get('NUM_SOLICITUD'),
                                        justify: text
                                    },
                                    success: function(response){
                                        var obj = Ext.decode(response.responseText);
                                        if(obj.success){
                                            record.set('ESTADO', 'CANCELADO');
                                            record.commit();
                                        }else{
                                            Ext.MessageBox.show({
                                                buttons: Ext.MessageBox.OK,
                                                icon: Ext.MessageBox.ERROR,
                                                msg: obj.msg,                        
                                                title: 'Error!!!'           
                                            });
                                        }
                                    }
                                });
                            }else{
                                Ext.MessageBox.show({
                                    buttons: Ext.MessageBox.OK,
                                    icon: Ext.MessageBox.ERROR,
                                    msg: 'Debe escribir una justificación para cancelar la solicitud',                                    
                                    title: 'Error!!!'
                                });
                            }

                        }
                    }
                });                                                                
                                
            },
            hidden: (Ext.get('hdnuser').getValue() != 'ssuarez')
        }
    ]
});